home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / procssng / alv.sun / alv.lha / src / convert.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-11-08  |  1.4 KB  |  71 lines

  1. #include "defs.h"
  2.  
  3. har   *progname;
  4.  
  5. #ifdef STANDALONE
  6. ain(argc, argv, envp)
  7. #else
  8. onvert_main(argc, argv, envp)
  9. #endif
  10.     int     argc;
  11.     char  **argv;
  12.     char  **envp;
  13. {
  14.     register int i, j;
  15.     int     width, height;
  16.     int     depth, depth_reqd;
  17.     Pixrect *pr;
  18.     int     ival;
  19.     int     files;
  20.     int     minval, maxval;
  21.  
  22.     width = height = 10;
  23.     depth_reqd = 8;
  24.  
  25.     progname = strsave(argv[0]);
  26.     parse_profile(&argc, argv, envp);
  27.  
  28.     while ((gc = getopt(argc, argv, "w:h:d:")) != EOF)
  29.         switch (gc) {
  30.         case 'w':
  31.             width = atoi(optarg);
  32.             break;
  33.         case 'h':
  34.             height = atoi(optarg);
  35.             break;
  36.         case 'd':
  37.             depth_reqd = atoi(optarg);
  38.             break;
  39.         case '?':
  40.             errflag++;
  41.             break;
  42.         }
  43.  
  44.     if (errflag)
  45.         error((char *) 0, "Usage: %s: [-w width] [-h height] [-d depth] [infile] [outfile]\n", progname);
  46.  
  47.     for (stream = 0; optind < argc; stream++, optind++)
  48.         if (stream < 2 && strcmp(argv[optind], "-") != 0)
  49.             if (freopen(argv[optind], mode[stream], f[stream]) == NULL)
  50.                 error("%s %s", PR_IO_ERR_INFILE, argv[optind]);
  51.  
  52.     if ((depth = ROUND_DEPTH(depth_reqd)) == NOT_SUPPORTED)
  53.         error(ALV_ERR_DEPTH_NO_SUPPORT);
  54.  
  55.     maxval = MAXLEVEL(depth_reqd);
  56.     minval = 0;
  57.  
  58.     if ((pr = mem_create(width, height, depth)) == NULL)
  59.         error("mem_create returned NULL");
  60.  
  61.     for (j = 0; j < height; j++)
  62.         for (i = 0; i < width; i++) {
  63.             scanf("%d", &ival);
  64.             ival = MAX(minval, ival);
  65.             ival = MIN(maxval, ival);
  66.             pr_put(pr, i, j, ival);
  67.         }
  68.  
  69.     pr_dump(pr, stdout, NULL, RT_STANDARD, 0);
  70. }
  71.